package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 项目实体类
 */
@Data
@TableName(value = "t_design", autoResultMap = true) // 新增autoResultMap属性
public class Design {
    /**
     * 自增主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 设计类型：
     * 1:酷家乐
     * 2:自有设计
     */
    @TableField("design_type")
    private Integer design_type;


    /**
     * 设计项目编号，如:SJ-20251027-001
     */
    @TableField("design_no")
    private String designNo;

    /**
     * 关联的项目表编号，用于关联查询项目信息
     */
    @TableField("project_no")
    private String projectNo;

    /**
     * 设计状态：
     * NOT_START(排期中)、DESIGNING(设计中)、FIRST_DELIVERY(一稿交付)
     * SECOND_DELIVERY(二稿交付)、COMPLETED(完成)、PAUSED(暂停)
     */
    @TableField("design_status")
    private DesignStatus designStatus;

    /**
     * 设计进度，百分比(0-100)
     */
    @TableField("design_progress")
    private Integer designProgress;


    /**
     * 空间标签，多个用逗号分隔
     */
    @TableField("space_tags")
    private String spaceTags;

    /**
     * 装修风格
     */
    @TableField("decoration_style")
    private String decorationStyle;

    /**
     * 方案名称
     */
    @TableField("scheme_name")
    private String schemeName;

    /**
     * 设计时间
     */
    @TableField("design_time")
    private LocalDate designTime;

    /**
     * 全景图链接
     */
    @TableField("panorama_url")
    private String panoramaUrl;

    /**
     * 酷家乐链接
     */
    @TableField("kujiale_url")
    private String kujialeUrl;

    /**
     * 创建时间
     */
    @TableField(value = "created_time")
    private LocalDateTime createdTime;

    /**
     * 状态备注，记录最新操作日志
     */
    @TableField("status_remark")
    private String statusRemark;

    /**
     * 更新时间
     */
    @TableField(value = "updated_time")
    private LocalDateTime updatedTime;

    /**
     * 逻辑删除标识：0-未删除，1-已删除
     */
    @TableField("is_deleted")
    @TableLogic
    private Integer isDeleted;

    /**
     * 设计师ID
     */
    @TableField("designer_id")
    private Long designerId;

    /**
     * 设计师姓名
     */
    @TableField("designer_name")
    private String designerName;

    // 新增空间设计图字段（对应JSON类型）
    /**
     * 客厅设计图URL列表
     */
    @TableField(value = "living_room_designs", typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    private List<String> livingRoomDesigns;

    /**
     * 卧室设计图URL列表
     */
    @TableField(value = "bedroom_designs", typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    private List<String> bedroomDesigns;

    /**
     * 餐厅设计图URL列表
     */
    @TableField(value = "dining_room_designs", typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    private List<String> diningRoomDesigns;

    /**
     * 卫生间设计图URL列表
     */
    @TableField(value = "toilet_designs", typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    private List<String> toiletDesigns;

    /**
     * 厨房设计图URL列表
     */
    @TableField(value = "kitchen_designs", typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    private List<String> kitchenDesigns;

    /**
     * 书房设计图URL列表
     */
    @TableField(value = "study_room_designs", typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    private List<String> studyRoomDesigns;

    /**
     * 阳台设计图URL列表
     */
    @TableField(value = "balcony_designs", typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    private List<String> balconyDesigns;

    /**
     * 阁楼设计图URL列表
     */
    @TableField(value = "attic_designs", typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    private List<String> atticDesigns;

    /**
     * 其他空间设计图URL列表
     */
    @TableField(value = "other_space_designs", typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    private List<String> otherSpaceDesigns;

    /**
     * 设计主图
     */
    @TableField(value = "design_main_image", typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
    private List<String> designMainImage;


    /**
     * 设计结束时间
     */
    @TableField("design_end_time")
    private LocalDate designEndTime;

    /**
     * 是否同步H5
     */
    @TableField("is_sync_h5")
    private Integer isSyncH5;
}
